class PerfilesController < ApplicationController
  before_filter :login_required
  
  # Acción que muestra dos tipos de vistas dependiendo del params:
  # Público y privado.
  def show
    @perfil = current_usuario.perfil
    
    respond_to do |format|
      if params[:tipo].blank? || params[:tipo] != "publico"
        format.html
      else
        format.html { 
          @perfil.gustos.not.nil? ? @gustos = @perfil.gustos.split("#-#") : @gustos = []
          @perfil.nongustos.not.nil? ? @nongustos = @perfil.nongustos.split("#-#") : @nongustos = []
          @usuario_tmp = current_usuario
          render :action => 'publico'
        }
      end
    end
  end
   
  # Método que actualiza el perfil público y privado.
  def update
    @perfil = current_usuario.perfil
    
    if params[:tipo] == "publico"
      @perfil.gustos = params[:perfil_gusta].values.join("#-#")       
      @perfil.nongustos = params[:perfil_no_gusta].values.join("#-#")
      current_usuario.update_attributes(params[:usuario_tmp])
    end
    
    respond_to do |format|
      if @perfil.update_attributes(params[:perfil])
        flash[:notice] = 'El perfil ha sido actualizado'
        format.html { 
          if params[:tipo]
            redirect_to usuario_perfil_path(:usuario => current_usuario.login, :tipo => "publico")  
          else
            redirect_to usuario_perfil_path(current_usuario.login)  
          end
        }
      end
    end
  end
end